import { shadowMapTypeNames, shadowMapTypeValues, WebGLShadowMap } from "../../../thirdparty/three/imports";

export class WebGLShadowMap3D
{
    _webGLShadowMap: WebGLShadowMap;

    get enabled()
    {
        return this._webGLShadowMap.enabled;
    }
    set enabled(v)
    {
        this._webGLShadowMap.enabled = v;
    }

    get type()
    {
        return shadowMapTypeNames[this._webGLShadowMap.type];
    }
    set type(v)
    {
        this._webGLShadowMap.type = shadowMapTypeValues[v];
    }

    static get(webGLShadowMap: WebGLShadowMap)
    {
        let webGLShadowMap3D = this._map.get(webGLShadowMap);
        if (!webGLShadowMap3D)
        {
            webGLShadowMap3D = new WebGLShadowMap3D();
            webGLShadowMap3D._webGLShadowMap = webGLShadowMap;
            this._map.set(webGLShadowMap, webGLShadowMap3D);
        }

        return webGLShadowMap3D;
    }
    private static _map = new Map<WebGLShadowMap, WebGLShadowMap3D>();
}
